home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Night Owl 6
/
Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso
/
034a
/
twview82.zip
/
EXAMINE.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1991-02-04
|
3KB
|
131 lines
program InfoViewer;
{ written mid december 1990 to date by woody }
{ dos version }
uses
graph, dos;
{$I headers.inc}
const
Version = 'dos 0.82a';
Credits = 'Feb 4, 1991 by Robert Weaver';
XDimMax = 20;
YDimMax = 15;
maxQueue = 600;
xoffset = 10;
yoffset = -2;
type
dist = record
d : integer;
s : sector;
end;
distanceArray = array [ sector ] of dist;
Queueitem = record dad, son : sector; end;
Queue = record
front, rear : 0..maxQueue;
data : array [1..maxQueue] of Queueitem;
end;
Vertex = record
sectorNum: integer; { 0 if not in use }
end;
XIndex = 1..XDimMax;
YIndex = 1..YDimMax;
Screen = array [XIndex, YIndex ] of Vertex;
Pair = record
visible : boolean;
row : XIndex;
col : YIndex;
end;
SectorToScreen = array [ sector ] of pair;
var {globals}
space : TheVoid;
g : text;
filename : string;
FuzzyMode,
BaseChanged,
quit : boolean;
distances : distanceArray;
{$I QUEUE.INC }
{$I status.inc }
{$I misc.inc }
{$I GSDATA.INC }
{$I statistc.inc }
{$I viewdos.inc }
{$I textdisp.inc }
{$I portdisp.inc }
{$I pathstuf.inc }
{$I notestuf.inc }
{$I teleport.inc }
{$I editbase.inc }
procedure menu;
begin
writeln('Choose one of ');
writeln('<A>dd note');
writeln('<D>ispersion of sectors');
writeln('<E>dit data base');
writeln('Closest place to buy <F>ighters, shields, and holds');
writeln('Note <I>nformation');
writeln('<L>ength of path between two sectors');
writeln('<M>ajor Space Lane information');
writeln('<N>earest port');
writeln('<P>aired ports');
writeln('<Q>uit');
writeln('Nearest <S>ectors');
writeln('<T>ranswarp menu');
writeln('Nearest <U>nexplored sectors');
writeln('<V>iew space in graphic format');
writeln('e<X>cise note (delete it)');
writeln;
end; {menu}
function choice : char;
var
ch : char;
begin
write('[A, D, E, F, L, I, M, N, P, Q, S, T, U, V, X] Your choice? ');
readln( ch );
choice := upcase( ch );
end;
begin
writeln('Tradewars Data Base Viewer: version ', version);
writeln( credits );
writeln;
Quit := false;
BaseChanged := false;
GetData( Space );
menu;
repeat
case choice of
'A' : AddNote( BaseChanged );
'D' : StellarDispersion;
'E' : EditMenu( BaseChanged );
'F' : NearestFighters;
'I' : NearestStuff( NoteOnly );
'L' : PathLength;
'M' : MajorSpaceLanes;
'N' : NearestStuff( PortOnly );
'P' : pairPort;
'Q' : quit := true;
'S' : NearestStuff( any );
'T' : TransWarpMenu( BaseChanged );
'U' : NearestStuff( UnExpOnly );
'V' : view;
'X' : RemoveNote( BaseChanged );
else
menu;
end; {case}
until quit;
if BaseChanged then
begin
write('File name for new data base? ');
readln( filename );
assign( g, filename );
rewrite( g );
saveData( g, space );
end;
end.